home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / C / Libraries / xmodem 3.10 / update.doc < prev    next >
Encoding:
Text File  |  1994-05-10  |  14.5 KB  |  316 lines  |  [TEXT/MPS ]

  1. Changes leading to version 3.3
  2.  
  3. 1) "Better" handshaking for MODEM7 batch transfers (5/19/87).
  4.  
  5. 2) If reception of a file is aborted due to errors, delete incomplete file
  6. (5/19/87).
  7.  
  8. 3) If an "impossible" tty speed is detected, assume 1200 bps (5/19/87).
  9.  
  10. 4) Disallow CAN-CAN abort during file send or receive except at beginning of
  11. file transfer (during batch transfers, CAN-CAN abort is allowed at beginning
  12. of each file transfer) (5/19/87).
  13.  
  14. 5) Uncouple total allowed errors during the reception of a single packet 
  15. (ERRORMAX, now made 10) and errors allowed when starting transfer (STERRORMAX, 
  16. set to 10) (5/19/87).
  17.  
  18. 6) Fix some bugs when receiving an empty file and when a phase error occurs
  19. during a file reception (5/19/87).
  20.  
  21. 7) Portability fix in prtime and projtime; they also handle pathological
  22. cases better (5/19/87).
  23.  
  24. 8) During file reception an EOT is not believed unless it is sent again in
  25. response to a NAK (5/25/87).
  26.  
  27. 9) Modified cpm_unix and unixify so a filename without an extension will not
  28. have a trailing dot in its filename after being received in a MODEM7 or
  29. YMODEM batch transfer (5/25/87).
  30.  
  31. 10) Allowable errors during transmission of a single packet now set to
  32. ERRORMAX (5/27/87).
  33.  
  34. 11) When transferring a binary file, the YMODEM file length field is filled
  35. in on transmit and (if present) used to truncate the file on reception.
  36. A new truncate function (truncfile) added to getput.c to do the deed (5/28/87).
  37. The file mode field is also set but is ignored on file reception.
  38.  
  39. 12) In a batch receive (xmodem -rt), program can be forced into checksum mode
  40. by specifying the "M" flag indicating a MODEM7 transfer (5/30/87).
  41.  
  42. 13) Changed the "B" option to "M" to indicate MODEM7 batch.  Made all option
  43. flags case insensitive.  Command line is now recorded in the log file
  44. (5/30/87).
  45.  
  46. 14) The "KND/IMP" convention of using "CK" to invoke 1K packets during YMODEM
  47. batch transfers was installed.  This code will be sent during a batch receive 
  48. if "K" is included on the command line unless "M" is also present.  This code
  49. will be recognized when sending under all circumstances (5/30/87).
  50.  
  51. ------------------------------------------------------------------------------
  52.  
  53. Changes leading to version 3.4
  54.  
  55. 1) Fix usage message (10/2/87).
  56.  
  57. 2) Sender will now try up to 10 times (EOTMAX) to send an EOT to terminate a
  58. transmission.  Used to be 5 times, but Chuck Forsberg's "official" minimum
  59. requirements for YMODEM mandate 10 (10/2/87).
  60.  
  61. 3) Handle YMODEM file modification times if present in header on reception of
  62. both binary and text files (10/2/87).  Retracted when can't seem to get
  63. proper times when playing with dsz (10/3/87).  Found bug and reinstalled
  64. feature (10/16/87).  Found REAL bug (10/21/87).
  65.  
  66. 4) Null bytes are now stripped out of files when received as text files (MEX
  67. doesn't seem to want to put in the terminating control-Z) (10/3/87).
  68.  
  69. 5) Slightly modified terminal parameter setting to explicitly turn off CRMOD
  70. and to flush read queue; ideas stolen from Kermit.  Will it fly on Pyramid?
  71. (10/3/87).
  72.  
  73. 6) Decreased time between "startup" characters sent when starting a file
  74. receive operation.  This should increase perceived response.  Now waits 
  75. WAITFIRST seconds (set to 1) instead of 6 (waits for 5 seconds for 
  76. subsequent packets.  STERRORMAX now 60, CRCSWMAX now 30.  
  77. Timeouts on 1st sector no longer reported in log (10/5/87).
  78.  
  79. 7) Once again played with kernel sleeps in readbuf() (packet reading
  80. routine).  On busy system could cause real problems.  Now supply flag (t)
  81. to suppress sleeping on Too Busy systems.  No longer suppress sleep when
  82. speeds are over 4800 bps.  Sleep kludge DOES help: on an empty 750 running
  83. 4.3BSD, a file reception at 2400 bps used 6% of the CPU with the sleep
  84. kludge and 24% without it (data transfer rates were the the same)
  85. (10/5/87). 
  86.  
  87. 8) Actually count characters as they are being read for a file reception.
  88. When YMODEM file length is set, stop writing characters when reach length.
  89. This will allow YMODEM file lengths to work for text files and the
  90. elimination of truncfile() in getput.c (which was impossible for SYS V)
  91. (10/5/87).
  92.  
  93. 9) Another attempt at tty modes.  Now do nothing but set speeds, set mode to
  94. raw, and turn off echoing and tandem (10/6/87).
  95.  
  96. ------------------------------------------------------------------------------
  97.  
  98. Changes leading to version 3.5
  99.  
  100. 1) Following the suggestion of Bill Carpenter (ho5cad!wjc), I changed every
  101. printf("") to fprintf(stderr, "") so one can use xmodem on either end of unix
  102. to unix link. (3/24/88).
  103.  
  104. 2) Again, thanks to Bill Carpenter, corrected typo in stamptime() in
  105. getput.sysv.c (3/24/88).
  106.  
  107. 3) Thanks to Steve Lebowitz (prcpto!pdvshl), fixed a && that should have been
  108. a & in getput.sysv.c (3/25/88).
  109.  
  110. 4) Thanks to Leo Pilachowski, who managed to fool xmodem by "preplacing" ACKS
  111. in the VAX's input queue (improves throughput by 20%, says Leo, but makes
  112. error recovery a tad dicey...!).  Implemented a flushin() function in
  113. getput.c to flush any pending characters.  flushin is called in send.c just
  114. after sending a packet to make sure a proper ACK or NAK is received (I hope 
  115. fast machines don't beat me to it and get their ACKS flushed!).  In
  116. receive.c, flushin is called prior to the "startup" characters, prior to
  117. sending the packet acknowledgment ACK and prior to the NAK prompting for
  118. confirming EOT.  Now how does one implement flushin() on Sys V? (3/25/88).
  119.  
  120. 5) Fixed pair of bugs in send.c:  YMODEM test enforcing CRC was testing
  121. number of attempts against STERRORMAX instead of ERRORMAX (also shortened
  122. timeout interval on this read) and a "timeout" during packet send was not
  123. noticed (due to a > instead of a >=) thus program started sending EOTs which
  124. further delayed abort (3/28/88).
  125.  
  126. 6) Modified send.c and cpmify function in batch.c to strip path names on file
  127. names transmitted as part of YMODEM batch (3/28/88).
  128.  
  129. 7) Hacked receive.c to make end of loop processing clearer and improve
  130. garbage flushing when errors are detected (3/28/88).
  131.  
  132. 8) Pulled out of decision restricting YMODEM batch send to use CRC only.  Will 
  133. now gladly use checksum if told to and will respond to NAK as well as the 
  134. proper C when starting up data transfer (3/28/88).  Turns out this patch fixes 
  135. problem with Red Ryder (4/10/88).
  136.  
  137. 9) Tested MODEM7 batch against MEX-PC.  Confirmation of EOT during filename
  138. transmission was not working, so xmodem wasn't shutting down a MODEM7 batch
  139. receive.  Removed code to NAK first EOT and wait for second EOT in MODEM7
  140. filename transfers (3/28/88).
  141.  
  142. 10) Added code to count number of newlines in a text file to get an accurate
  143. file size.  I thought it would take too long; but seems to be quite nimble
  144. (see countnl in getput.c).  We now transmit YMODEM file length and mode
  145. information for text as well as binary files (3/29/88).
  146.  
  147. 11) After a YMODEM file name packet was received, forgot to reset "wait" time
  148. for receiving first character of data packet which definitely slowed
  149. perceived performance.  (See note 6 for v. 3.4).  Fixed (4/7/88).
  150.  
  151. ------------------------------------------------------------------------------
  152.  
  153. Changes leading to version 3.6
  154.  
  155. 1) Added two new major commands (sa and ra) to send and receive text files
  156. for Apple Macintoshs which use CR as EOL character instead of the MS/DOS CR
  157. LF pair.  Thanks to Dave Nowak (djnowak@iseesun.DPL.SCG.HAC.COM) for the
  158. inspiration (4/11/88).
  159.  
  160. 2) Experiences with Red Ryder 10.3.  Fixed botch in receive.c that led to an
  161. infinite loop when a checksum failed on YMODEM file name packet.  Now have
  162. seperate variables for packet errors and "startup" errors.  Prevent CRC to
  163. checksum switch during receive startup if YMDMBAT flag is true.  This insures
  164. that no such transition will ever take place on second or subsequent file
  165. transfer; can be set on first file by including Y option on command line.  No
  166. longer print "0" expected sectors if both YMODEM file length and KMD file
  167. length are both 0 (4/12/88).
  168.  
  169. 3) Cleaned up ifs in readbuf.  Removed void declaration on flushin (will
  170. break 4.2BSD compiler?).  Corrected "number of sent sectors" on YMODEM
  171. transfer (was counting filename packet) (4/12/88).
  172.  
  173. 4) More experiences with Red Ryder.  Removed line flush before every CRCCHR
  174. or NAK trying to start a receive (RR YMODEM batch send to the VAX now seems
  175. to work).  Fixed KMD "1K reception flag" to work properly on a receive. 
  176. Added a flushin just before program exits in a futile effort to eliminate
  177. RR's nasty habit of sending a final EOT down the line.  Rearranged
  178. variables in send.c so longpackets requested by the KMD flag are not
  179. "sticky" from file to file in a batch.  RR is a real DOG: only gets about 133
  180. cps when downloading to a Mac over a 9600 bps line! (4/14/88). 
  181.  
  182. ------------------------------------------------------------------------------
  183.  
  184. Changes leading to version 3.7
  185.  
  186. 1) More strange and wonderful PC xmodem programs!  Dave Jaksha's program
  187. won't send send another EOT when first EOT is NAKed.  Raised timeout
  188. threshold from 3 to 5 seconds and fixed silly bug in receive.c that prevented
  189. any more NAKs from being sent in this situation (5/10/88).
  190.  
  191. ------------------------------------------------------------------------------
  192.  
  193. Changes leading to version 3.8
  194.  
  195. 1) Added some fields to YMODEM filename record as per Forsberg's revised
  196. spec.  Correct some nits in the way the filename record is handled (11/1/88).
  197.  
  198. ------------------------------------------------------------------------------
  199.  
  200. Changes leading to version 3.9
  201.  
  202. 1) Better debug message about "packet starting" (10/17/90).
  203.  
  204. 2) Added debug error message when readbyte times out (10/17/90).
  205.  
  206. 3) Now flush input before ACK of received YMODEM filename packet.
  207. (Will this break Red Ryder? Tough.) (10/17/90).
  208.  
  209. 4) Now explicitly, after receiving YMODEM filename packet, send NAK or
  210. CRCCHR.  Also, check that output file can be opened before ACKING receipt
  211. of YMODEM file name packet.  Both these are required by "True" YMODEM spec.
  212. Also, I think this may cure some of the problems seen with various programs
  213. trying YMODEM batch transfers. (10/17/90). 
  214.  
  215. 5) Added some status messages to be printed to stderr under control of the -P
  216. flag so we can tell the progress of a transfer when invoked with the "~C"
  217. command of SunOS tip.  Also added -W flag to slow startup handshake so 
  218. funny characters don't trash input while one is typing the "~C" command string
  219. (via TIPDELAY define, set to 15 seconds).  Utilizes new tlogit and tlogitarg 
  220. macros. (10/18/90).
  221.  
  222. 6) Made a failure to change the mode bits of the tty a non-fatal error
  223. since, in some systems, uucp owns the device.  Also allows someone who has
  224. su'd to run Xmodem (10/24/90). 
  225.  
  226. 7) Changed error messages about transmissions being canceled "at user's
  227. request" to "by CAN-CAN" (10/26/90).
  228.  
  229. 8) Go hog-wild with options!  Added "e" option to suppress EOT verification
  230. when receiving files (should make some brain-damaged PC programs work with
  231. xmodem).  Added "n" option to allow CAN-CAN aborts any time during a file
  232. transfer and not just at the beginning.  (10/29/90). 
  233.  
  234. 9) Added a one-liner function (stopsig) to getput.c to ignore keyboard stop
  235. signals so stray ^X characters absorbed during an abort don't put xmodem
  236. into background!  (10/31/90). 
  237.  
  238. 10) Added support for YMODEM-G variant of YMODEM via the "g" flag.
  239. (11/1/90).
  240.  
  241. 11) Made the "cm" option combination on a receive command force checksum
  242. "handshaking" during file-name negotiations and CRC-16 use during file
  243. transfer.  Why am I still worried about MODEM7?  (11/1/90).
  244.  
  245. 12) Revised some status messages to indicate that the option (CRC, 1K
  246. packets, YMODEM-G) were invoked from the command line rather than through
  247. "protocol negotiation."  (11/1/90)
  248.  
  249. 13) Don't send "start-up handshake" character when you get a fatal error in a
  250. data block! (11/2/90)
  251.  
  252. 14) Try to REALLY flush input when die with fatal error in data block. 
  253. Trying YMODEM-G receptions on a very busy VAX 750 shows up some problems! 
  254. (11/2/90). 
  255.  
  256. 15) Include a date in the version banner: Version 3.9 (November 1990).
  257. (11/5/90).
  258.  
  259. ------------------------------------------------------------------------------
  260.  
  261. Changes leading to version 3.10
  262.  
  263. 1) New Makefile courtesy Vikas Aggarwal (aggarwal@nisc.jvnc.net).  His
  264. version used mkdep to determine dependencies, I explicitly put in the
  265. dependencies to avoid use of mkdep and cluttering up Makefile with
  266. /usr/include/whatever.  (11/13/90). 
  267.  
  268. 2) Added version.h with VERSION definition so I don't have to change xmodem.h
  269. and hence recompile everything when I change the version date. (12/10/90).
  270.  
  271. 3) Added reallyflush() function to misc.c to wait for all activity on line to
  272. clear (replaces flushin + a while loop).  Added reallyflush call in receive.c
  273. to case of invalid packet number checksum. (12/12/90).
  274.  
  275. 4) Added timeout time to TIMEOUT debug message in readbyte. (12/12/90).
  276.  
  277. 5) Made "Can't flush terminal queue" in getput.c a non-fatal error (12/14/90).
  278.  
  279. 6) Made note in manual page about needed "/bin/stty -istrip"  on MIPS
  280. systems running RISC/os.  Why does "istrip" affect even raw mode? 
  281. (12/14/90). 
  282.  
  283. 7) Mask checksum values read from datastream to 8-bits so TIMEOUTS won't look
  284. even funnier than they have to. (12/20/90).
  285.  
  286. 8) Added new MOREDEBUG category of error logging (invoked by two x's in the
  287. option string).  First use of MOREDEBUG in getput.c to list EVERY character
  288. read in a data packet. (12/20/90).
  289.  
  290. 9) Made another note in manual page about MIPS systems.  The really need
  291. "/bin/stty -istrip -ixon" so 8-th bit is stripped and X-OFF characters aren't
  292. eaten (even in raw mode!).  (12/20/90).
  293.  
  294. 10) Kit Bingham was having trouble with Versaterm uploads.  Apparently,
  295. Versaterm couldn't respond fast enough to the initial handshake characters
  296. Xmodem was sending down the line.  I modified receive.c to increment the
  297. amount of time between sending the handshake characters (variable firstwait)
  298. by one second each timeout.  I also properly parameterized the timeout period
  299. allowed between data packets (as PACKWAIT = 5) and reset the startup error
  300. count after a YMODEM filename packet. (1/4/91).
  301.  
  302. ------------------------------------------------------------------------------
  303.  
  304. Thanks to Keith Peterson (w8sdz@simtel20.arpa), John Rupley
  305. (arizona!rupley!root), Emmet Gray (ihnp4!uiucuxc!fthood!egray), Bob
  306. Bickford (lll-crg!well!rab), Doug Moore (moore@svax.cs.cornell.edu), David
  307. Brown (jdb@ncsc.arpa), Bill Carpenter (ho5cad!wjc), Steve Lebowitz
  308. (prcpto!pdvshl), Leo Pilachowski, Dave Nowak
  309. (djnowak@iseesun.DPL.SCG.HAC.COM), David Elliott
  310. (pyramid!boulder!stan!dce), Benson Margulis (benson@odi.com), Kit Bingham
  311. (kb@umnstat.stat.umn.edu), Bob Bownes (beowulf!bownes), Bill Stubblebine
  312. (hplabs!hp-lsd!was), Chert Pellett (spdyne!root), Vikas Aggarwal
  313. (aggarwal@nisc.jvnc.net) and Chuck Forsberg's documents and ZCOMM/DSZ/rz/sz
  314. programs for ideas, suggestions and comments.  Thanks to D'Anne Thompson
  315. for some nice code. 
  316.